.TH std::iswprint 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::iswprint \- std::iswprint

.SH Synopsis
   Defined in header <cwctype>
   int iswprint( std::wint_t ch );

   Checks if the given wide character can be printed, i.e. it is either a number
   (0123456789), an uppercase letter (ABCDEFGHIJKLMNOPQRSTUVWXYZ), a lowercase letter
   (abcdefghijklmnopqrstuvwxyz), a punctuation character
   (!"#$%&'()*+,-./:;<=>?@[\\]^_`{!}~), space or any printable character specific to the
   current C locale.

   If the value of ch is neither representable as a wchar_t nor equal to the value of
   the macro WEOF, the behavior is undefined.

.SH Parameters

   ch - wide character

.SH Return value

   Non-zero value if the wide character can be printed, zero otherwise.

.SH Notes

   ISO 30112 specifies which Unicode characters are include in POSIX print category.

.SH Example


// Run this code

 #include <clocale>
 #include <cwctype>
 #include <iostream>

 void demo_iswprint(std::string_view rem, const std::wint_t c)
 {
     std::cout << std::boolalpha << std::hex << std::showbase
               << rem << "iswprint('" << c << "') = "
               << !!std::iswprint(c) << '\\n';
 }

 int main()
 {
     const wchar_t c1 = L'\\u2002'; // en-space
     const wchar_t c2 = L'\\u0082'; // break permitted

     demo_iswprint("In default locale:\\n", c1);

     std::setlocale(LC_ALL, "en_US.utf8");
     demo_iswprint("In Unicode locale:\\n", c1);
     demo_iswprint("", c2);
 }

.SH Possible output:

 In default locale:
 iswprint('0x2002') = false
 In Unicode locale:
 iswprint('0x2002') = true
 iswprint('0x82') = false

.SH See also

   isprint(std::locale) checks if a character is classified as printable by a locale
                        \fI(function template)\fP
   isprint              checks if a character is a printing character
                        \fI(function)\fP
   C documentation for
   iswprint

        ASCII values            characters    iscntrl  isprint  isspace  isblank  isgraph  ispunct  isalnum  isalpha  isupper  islower  isdigit  isxdigit
decimal hexadecimal   octal                   iswcntrl iswprint iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower iswdigit iswxdigit
0–8     \\x0–\\x8     \\0–\\10    control codes   ≠0       0        0        0        0        0        0        0        0        0        0        0
                              (NUL, etc.)
9       \\x9         \\11       tab (\\t)        ≠0       0        ≠0       ≠0       0        0        0        0        0        0        0        0
                              whitespaces
10–13   \\xA–\\xD     \\12–\\15   (\\n, \\v, \\f,    ≠0       0        ≠0       0        0        0        0        0        0        0        0        0
                              \\r)
14–31   \\xE–\\x1F    \\16–\\37   control codes   ≠0       0        0        0        0        0        0        0        0        0        0        0
32      \\x20        \\40       space           0        ≠0       ≠0       ≠0       0        0        0        0        0        0        0        0
33–47   \\x21–\\x2F   \\41–\\57   !"#$%&'()*+,-./ 0        ≠0       0        0        ≠0       ≠0       0        0        0        0        0        0
48–57   \\x30–\\x39   \\60–\\71   0123456789      0        ≠0       0        0        ≠0       0        ≠0       0        0        0        ≠0       ≠0
58–64   \\x3A–\\x40   \\72–\\100  :;<=>?@         0        ≠0       0        0        ≠0       ≠0       0        0        0        0        0        0
65–70   \\x41–\\x46   \\101–\\106 ABCDEF          0        ≠0       0        0        ≠0       0        ≠0       ≠0       ≠0       0        0        ≠0
71–90   \\x47–\\x5A   \\107–\\132 GHIJKLMNOP      0        ≠0       0        0        ≠0       0        ≠0       ≠0       ≠0       0        0        0
                              QRSTUVWXYZ
91–96   \\x5B–\\x60   \\133–\\140 [\\]^_`          0        ≠0       0        0        ≠0       ≠0       0        0        0        0        0        0
97–102  \\x61–\\x66   \\141–\\146 abcdef          0        ≠0       0        0        ≠0       0        ≠0       ≠0       0        ≠0       0        ≠0
103–122 \\x67–\\x7A   \\147–\\172 ghijklmnop      0        ≠0       0        0        ≠0       0        ≠0       ≠0       0        ≠0       0        0
                              qrstuvwxyz
123–126 \\x7B–\\x7E   \\172–\\176 {|}~            0        ≠0       0        0        ≠0       ≠0       0        0        0        0        0        0
127     \\x7F        \\177      backspace       ≠0       0        0        0        0        0        0        0        0        0        0        0
                              character (DEL)
